﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using SIGERP_Entidades;
using SIGERP_Negocio;

using System.Data.SqlClient;

namespace SIGERP_Presentacion
{
    public partial class frmBuscarCliente : frmABM
    {
        List<Cliente> clientes;
        DataTable dt;
        Cliente cliente;

        public frmBuscarCliente()
        {
            base.lblBuscar.Text="Ingrese DNI o Apellido: ";
            base.lblTitulo.Hide();
            base.picImagen.Hide();
            base.picTitulo.Hide();
            base.gbObjetos.Text = "Clientes:";
            base.tlsMenu.Hide();
            this.Text = "SIGERP - Buscar cliente";
            base.gbObjetos.Height = this.Height-(gbBusqueda.Height+70);
            base.gbObjetos.Location = new System.Drawing.Point(0, 65);
            base.CargarGrilla();
        }

        public override void CargarGrilla()
        {
            dt = new DataTable();
            dt.Columns.Add("Cod.", typeof(int));
            dt.Columns.Add("Apellido", typeof(string));
            dt.Columns.Add("Nombre", typeof(string));
            //dt.Columns.Add("Sexo", typeof(string));
            dt.Columns.Add("Tipo doc.", typeof(string));
            dt.Columns.Add("Numero doc.", typeof(string));
            //dt.Columns.Add("Fecha nacimiento", typeof(DateTime));
            //dt.Columns.Add("Telefono", typeof(int));
            //dt.Columns.Add("Celular", typeof(int));
            //dt.Columns.Add("E-Mail", typeof(string));
            //dt.Columns.Add("Estado Civil", typeof(string));
            //dt.Columns.Add("Nacionalidad", typeof(string));
            //dt.Columns.Add("Calle", typeof(string));
            //dt.Columns.Add("Numero", typeof(string));
            //dt.Columns.Add("Piso", typeof(string));
            //dt.Columns.Add("Departamento", typeof(string));
            dt.Columns.Add("Ciudad", typeof(string));
            //dt.Columns.Add("Provincia", typeof(string));
            //dt.Columns.Add("Pais", typeof(string));

            clientes = Clientes.buscarClientes();
            foreach (Cliente c in clientes)
                //dt.Rows.Add(c.cod_cliente, c.apellido, c.nombre, c.sexo, c.tipodocumento.descripcion,c.numero_documento,c.fecha_nacimiento, c.telefono,c.celular,c.email,c.estado_civil.descripcion,c.nacionalidad, c.calle,c.numero, c.piso, c.departamento,c.ciudad.descripcion,c.ciudad.provincia.descripcion,c.ciudad.provincia.pais.descripcion);
                dt.Rows.Add(c.cod_cliente, c.apellido, c.nombre, c.tipodocumento.descripcion,c.numero_documento,c.ciudad.descripcion);
            base.Grilla.DataSource = dt;
            base.Grilla.Columns[0].Visible = false;
            Grilla.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }

        public override void busqueda()
        {
            dt.Clear();

            foreach (Cliente c in clientes)
            {

                if (c.numero_documento.StartsWith(txtBusqueda.Text) || c.apellido.ToUpper().StartsWith(base.txtBusqueda.Text.ToUpper()) || c.nombre.ToUpper().StartsWith(base.txtBusqueda.Text.ToUpper()))
                    //dt.Rows.Add(c.cod_cliente, c.apellido, c.nombre, c.sexo, c.tipodocumento.descripcion,c.numero_documento,c.fecha_nacimiento, c.telefono,c.celular,c.email,c.estado_civil.descripcion,c.nacionalidad, c.calle,c.numero, c.piso, c.departamento,c.ciudad.descripcion,c.ciudad.provincia.descripcion,c.ciudad.provincia.pais.descripcion);
                    dt.Rows.Add(c.cod_cliente, c.apellido, c.nombre, c.tipodocumento.descripcion, c.numero_documento, c.ciudad.descripcion);
            }

            //SINO ENCUENTRA RESULTADOS MUESTRO LA LEYENDA PARA INGRESAR NUEVO

            if (dt.Rows.Count == 0) base.lblNoSeEncontro.Text = "Ingresar nuevo cliente";
            else base.lblNoSeEncontro.Text = "";
        }


        public override void editar(int row,int column)
        {
            if (row == base.Grilla.SelectedRows[0].Index)
            {
                if (base.Grilla.SelectedRows.Count == 1)
                {
                    Cliente c = Clientes.buscarCliente(Convert.ToInt32(base.Grilla.SelectedRows[0].Cells["Cod."].Value));
                    if (c != null)
                    {
                        cliente = c;
                        Close();
                    }
                }
            }
        }


        public override void enterEnTextBox()
        {
            if (dt.Rows.Count == 0)
            {
                frmClienteAgregar frm = new frmClienteAgregar(txtBusqueda.Text.ToUpper());
                frm.ShowDialog();
                CargarGrilla();
                busqueda();
            }
            else 
            {
                Cliente c = Clientes.buscarCliente(Convert.ToInt32(base.Grilla.SelectedRows[0].Cells["Cod."].Value));
                if (c != null)
                {
                    cliente = c;
                    Close();
                }
            }
        }

        public Cliente getCliente() {
            return cliente;
        }

        private void InitializeComponent()
        {
            this.HelpProviderHG = new System.Windows.Forms.HelpProvider();
            this.SuspendLayout();
            // 
            // HelpProviderHG
            // 
            this.HelpProviderHG.HelpNamespace = "/SIGERP_AYUDA.chm";
            // 
            // frmBuscarCliente
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.ClientSize = new System.Drawing.Size(592, 416);
            this.HelpProviderHG.SetHelpKeyword(this, "frmBuscarCliente_1.htm");
            this.HelpProviderHG.SetHelpNavigator(this, System.Windows.Forms.HelpNavigator.Topic);
            this.Name = "frmBuscarCliente";
            this.HelpProviderHG.SetShowHelp(this, true);
            this.ResumeLayout(false);
            this.PerformLayout();

        }
    }
}
